	 /*
      * Jquery—shopping   0.1
      
      **根据原来的js改用为自己的js v0.1 2014年10月27日 16:00:56 -- by yb
      **v0.2 2015年8月24日 17：45  -- by yb
      changelog
      v0.2 :
      1、将cartnumber参数的默认值去掉了，如果不需要用js每加入一次就加一个购物车的数量则不需要该参数，购物车数量的变化应该由后台实现；
      2、在飞入购物车的元素下沉到购物车后，改变购物车数量的事件加了一个判断（是否设置了cartnumber参数）；
      3、新增一个参数"numflyclass"，将原js中弹出"+1"元素的固定类名改成参数形式；
      4、将js中原来的终点X轴位置改成了js获取，Y轴的位置有小的改动；
      5、去掉了参数中的position属性，将js中的position值改为fixed；
      6、增加了事件执行完之后的回调事件参数onEnd

      v0.3 ：
      **v0.3 2016年10月6日 -- by yb
      changelog
      1、增加参数 numfly ；可配置飞入元素完成后是否显示“+1”的元素
      2、优化飞入元素终点x位置
	 */

;(function($){
	$.extend($.fn,{
		shoping:function(o){
			o= $.extend({
				cartbox:'.y_rtcart',//目标飞入对象
				cartnumber:'',//显示购物车数量的元素
				imgflyclass:"y_flyimg",//飞入到购物车元素的类名
				numfly:true,//添加完购物车后，是否显示"+1"元素
				numflyclass:"y_flynum",//添加完购物车后，显示"+1"元素的类名
				star_x:0,//飞入元素的起点x轴位置
				star_y:0,//飞入元素的起点y轴位置
				end_y_offset:0,//飞入元素的终点y轴偏移值
				imgFlyTime:1000,//飞入对象飞到购物车时间
				imgDowTime:500,//飞入对象在购物车下沉时间
				numUpTime:1000,//+1字符上移时间
				onEnd: $.noop
			}, o || {});
				
			var self=this;
			var sch=$(window).scrollTop(),
					end_x = $(o.cartbox).offset().left+($(o.cartbox).width()-24)/2,
					end_y = $(o.cartbox).offset().top-sch+o.end_y_offset;
					//添加飞入的商品
					var $obj = $(self).clone().addClass(o.imgflyclass);
					$obj.css({'left': o.star_x,'top': o.star_y,'position':'fixed'}).appendTo($('body')).animate({'left': end_x,'top': end_y-20,'width':20,'height':20},o.imgFlyTime,function() {  //移动到购物车上方
						$obj.stop(false, false).animate({'top': end_y,'opacity':0},o.imgDowTime,function(){  //移进到购物车里面并淡出
							$obj.remove();	  //移除飞入的元素
							if(o.cartnumber){
								var num=Number($(o.cartnumber).text());//把对象的值转化为数字
								$(o.cartnumber).text(num+1);  //购物车的数量+1
							};
							if(o.numfly){
								var $flynum = $("<span class="+o.numflyclass+">+1</span>");
								$flynum.css({'left': end_x,'top': end_y,'position':'fixed'}).appendTo($('body')).animate({'top': end_y-20,'opacity':0},o.numUpTime,function(){
									 o.onEnd.apply(this);	 //结束的回调事件
								});
							}else{
								o.onEnd.apply(this);	 //结束的回调事件
							}
						});
					});
		}
	});	
})(jQuery);
